OSAI

WINPLUS

 

 

 

Versione 0.8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sviluppato da: Ufficio Automazione

In data:           : 05/05/2004

 

Aggiornato    : 24/08/2011

Versione di rif.: 2.15.2


 

PREMESSA

Il presente manuale fornisce una serie di istruzioni indispensabili per la corretta installazione ed utilizzo del software di programmazione WinPLUS.  Questo software, operante in ambiente Windows, consente di progettare applicazioni PLC per i controlli numerici OSAI.

Vengono inoltre indicati i criteri adottati da CMS per la progettazione con WinPLUS delle applicazioni PLC.

 

LEGENDA

 

Versione 0.8

Revisione generale del documento

In particolare:

-         aggiunto descrizione file messaggi in lingua multipli (ITA.ASC, ING.ASC, …) come alternativa al singolo file WinPlus.asc. Inserito inoltre suggerimenti per gestione messaggi (variabili indirizzate in chiaro, stringa messaggio come commento per agevolare operazioni di diagnostica, azione messaggio slegata dalla relativa posizione nel file)

-         aggiunto tabelle per nomenclatura variabili , strutture dati e segnali I/O

-         aggiunto descrizione file ausiliari presenti nella cartella WIN (INITVAR,…)

-         aggiunto esempi per indirizzamento diretto variabili CN (in particolare messaggi e I/O)

-         aggiornato Area di Memoria OSAI WinPLUS

-         aggiunto esempi per gestione timer e pulse senza parametri formali

 

Versione 0.7

Inserito capitolo “Backup e Restore del PLC mediante PM Tool"

 

Versione 0.6

Inserito capitolo “Metodologia di identificazione errore da interprete WinPlus”

 

Versione 0.5

Modificato tabella area di memorie winplus:

Modificato Modulo “PANPC” per errore indirizzamento.

Inserito Modulo nuovo “USUR”, file per gestire l’usura utensile.

Modificato Modulo “PROTOC” per nuovi indirizzamenti.

 

Versione 0.4

Modificato tabella area di memorie winplus. Inserito Modulo nuovo “PANPC”, file per gestire il Pannello operativo su PC “OpPanel.exe”.

Modificato gestione Softkey

 

Versione 0.3

Modificato tabella area di memorie winplus. Inserito Modulo nuovo “VARI”, e modificato modulo “LUBR”.

 

Versione 0.2

Aggiornato tabella area di memorie winplus

 

Versione 0.1

Primo documento

 

 


 

INDICE

L’applicazione PLC WinPLUS. 5

File di configurazione.. 5

Installazione dell’ambiente WinPLUS. 5

Struttura del progetto WinPLUS. 6

Criteri per la realizzazione del progetto WinPLUS. 6

Gestione delle COSTANTI e delle VARIABILI WinPLUS. 7

INDIRIZZAMENTO SIMBOLICO (opzionale) 10

Tabella Indirizzamento simbolici Area CN tramite puntatore.. 12

GLI ARRAY. 14

TABELLA DEI SIMBOLI PER NOMENCLATURA SEGNALI I/O.. 15

TABELLA DEI SIMBOLI PER NOMENCLATURA VARIABILI GLOBALI. 16

TABELLA DEI SIMBOLI PER NOMENCLATURA VARIABILI LOCALI (Solo Volatili) 16

AREA DI MEMORIA OSAI WINPLUS                                 23/08/2011. 17

Strutture di programmazione.. 18

FUNZIONI E FUNCTION BLOCK.. 18

CONTATORI. 18

TEMPORIZZATORI. 18

PULSE.. 19

TABELLA DEI SIMBOLI PER NOMENCLATURA ULTERIORI STRUTTURE DATI. 20

GESTIONE SOFTKEY.. 21

GESTIONE MESSAGGI. 21

Tramite FILE unico WINPLUS.ASC.. 21

Tabella Messaggi WinPLUS.ASC.. 23

Tramite FILE specifici per ciascuna lingua (ITA.ASC, ING.ASC, FRA.ASC, …) 26

Debugging del progetto WinPLUS. 27

Breakpoint.. 27

Metodologia di identificazione errore da interprete WinPlus. 27

Backup e restore del PLC mediante PM Tool.. 29

 


L’applicazione PLC WinPLUS

 

L’applicazione PLC WinPLUS consiste in un insieme di file che vanno caricati nel direttorio E:\LOG del CN.

Per lo sviluppo, la generazione finale ed il trasferimento di questi file è necessario che sia presente l’ambiente di sviluppo WinPLUS su un PC di utilità (può essere lo stesso PC a bordo della macchina).

In funzione della versione dell’applicazione WinPLUS può essere necessario per le operazioni di compilazione disporre della relativa chiavetta USB OSAI, mentre le operazioni di download sono sempre consentite.

 

File di configurazione

Esistono dei file di configurazione, alcuni dei quali generati con programmi dedicati,  che devono essere successivamente copiati (tramite normale comando Windows) nella directory E:\LOG\WIN. Di seguito ne viene riportato l’elenco:

 

- Configurazione INTERBUS                                             : WINPLUS.SVC

- Configurazione CANOPEN                                             : WINPLUS.BUS

- Configurazione CANOPEN Scheda Hilscher               : CANBUS0.DBM

- Rimappatura I/O CANOPEN Scheda Hilscher : CANBUS0.RMP

- Configurazione unica MESSAGGI DI LOGICA             : WINPLUS.ASC

- MESSAGGI DI LOGICA in Italiano                                : ITA.ASC

- MESSAGGI DI LOGICA in Inglese                                : ING.ASC

- MESSAGGI DI LOGICA in Francese                            : FRA.ASC

- MESSAGGI DI LOGICA in …                                          :  … .ASC

 

Talvolta vengono inseriti in questa directory anche file ausiliari specifici per l’applicazione, che consentono di definire un numero notevole di parametri senza gravare sulle variabili @ e con un livello di protezione maggiore, anche se di contro non consentono i vantaggi delle variabili @ (aggiornamento immediato del valore della variabile, utilizzo della variabile nei Part-Program, nessuna scrittura di codice PLC per la relativa decodifica, …). Questi file vengono decodificati da PLC al verificarsi di determinati eventi: accensione CN,  POWER ON macchina ...

 

Esempi di file parametri macchina che possono essere presenti nella cartella WIN:

- Parametri macchina                                             : INIT_VAR

- Parametri Motori PHASE Cambio Utensile      : INITPHCU

 

 

Installazione dell’ambiente WinPLUS

 

Vedi paragrafo relativo nella Procedura SQ09.P05/IO-22  INSTALLAZIONE E CONFIGURAZIONE  SISTEMA OPERATIVO WINDOWS E APPLICATIVI CN

 

 


Struttura del progetto WinPLUS

 

Il progetto WinPLUS è costituito da più file organizzati in specifici direttori: Configurazione, Programmi, Variabili e Costanti, Funzioni, Function Block, Data Types, Librerie.

I programmi vanno agganciati  ai TASK di gestione (File CicloPLC.res)  in funzione delle loro dimensioni e delle prestazioni richieste (frequenza di esecuzione, evento di esecuzione, …).

 

 

Criteri per la realizzazione del progetto WinPLUS

 

Per la realizzazione di un progetto con WinPLUS è necessario seguire in primo luogo i criteri adottati per la stesura del programma PLC di tutti i progetti di automazione:

 

-         strutturazione dell’applicazione PLC in sottoblocchi e relativa nomenclatura.

 

-         nomenclatura  variabili e simbolici come da standard CMS (nelle tabelle indicate nelle pagine seguenti  vengono riportati degli esempi).

 

-         suddivisione aree di memoria CN come indicato nella tabella “AREA DI MEMORIA OSAI WINPLUS” indicata nelle pagine seguenti.

 

 


Gestione delle COSTANTI e delle VARIABILI WinPLUS

 

COSTANTI

 

E’ preferibile utilizzare dei valori simbolici  nelle varie espressioni di calcolo, ovvero delle COSTANTI, al posto di valori assoluti di cui non è sempre facile intuire il significato.

Si decide di definire le costanti negli stessi blocchi in cui vengono definite le variabili, inserendole nell’apposita sezione CONST.

Con WinPLUS il nome di una costante deve essere lungo al massimo 32 caratteri.

Per convenzione interna si decide di costruire il nome di ciascuna costante partendo dal tipo seguito dal nome del blocco in cui viene definita e da una descrizione generale, utilizzando il carattere “_” come separatore e  scrivendo in maiuscolo ciascun carattere.

Nel caso di costanti definite  nei moduli VarCom.gvl o VarMac.gvl si omette il nome del blocco.

 

Formato Generale:

KTIPO_BLOCCO_DESCRIZIONE                     : TIPO COSTANTE                        := VALORE ;

 

KTIPO_         TIPO COSTANTE                                      VALORE

KM_               BOOL             1 bit                range:             0,1 (FALSE,TRUE)

KB_                BYTE              8 bit                range:             0…255

KW_               WORD           16 bit  (+)       range:             0...65535

KI_                  INT                  16 bit  (+/-)     range:             -32768…+32767

KDW_                        DWORD        32 bit  (+)       range:             0…4294967295

KDI_               DINT               32 bit  (+/-)     range:             -2147483648…+2147483647

KLR_              LREAL           64 bit floating point

KSTRING_    STRING         cost.  stringa (vedi manuale “WinPLUS Programming Manual”)

KTIME_          TIME               cost. tempo (vedi manuale “WinPLUS Programming Manual”)

 

 

Esempi:

 

Costanti generali definite nel modulo VarCom.gvl:

    KI_PROCESSO1            : INT:= 1 ;

    KT_10MS                         : TIME:= T#10ms ;

 

Costanti specifiche definite nel modulo VarAssi.gvl:

    KI_ASSI_NUM_BIT_FEED_OVR         : INT:= 5 ;

    KI_ASSI_NUM_BIT_SPEED_OVR      : INT:= 4 ;

 

 


VARIABILI

 

Come per le costanti anche per le variabili si decide di adottare una convenzione interna per la loro nomenclatura così da agevolare la lettura del codice del programma

Con WinPLUS il nome di una variabile deve essere lungo al massimo 32 caratteri.

Per convenzione interna si decide di costruire il nome di ciascuna variabile partendo dal tipo seguito dal nome del blocco separati dal carattere “_” e scritti interamente in maiuscolo) e seguiti da una descrizione generale composta da una successione di parole di cui solo le iniziali scritte in maiuscolo.

N.B.: Il significato dell’azione espressa dal nome della variabile deve fare riferimento allo stato logico 1 (VERO).

 

Eccezioni:

a)     nel caso di variabili generali o di sistema definite nei moduli VarCom.gvl o VarMac.gvl si omette il nome del blocco.

 

b)     il nome del blocco non va indicato anche nel caso di variabili LOCALI, segnali di I/O e può essere omesso nel caso di variabili indicanti funzioni M/S/T.

 

c)      per le variabili indicanti segnali di I/O si preferisce sostituire al tipo di variabile (in generale BOOL)  il tipo di segnale relativo (come da tabella indicata nelle pagine seguenti)

 

d)     per i messaggi si prevede uno specifico file (VarMsg.gvl) dove vengono definiti tutti gli allarmi della macchina specificando come blocco quello in cui verranno settati. Inoltre viene sostituito il tipo di variabile (BOOL)  dalla stringa “MSG_”

 

e)     ulteriori convenzioni vengono utilizzate per alcuni tipi di variabili utilizzate ad esempio per la decodifica di softkey, per i parametri formali delle funzioni o per variabili rappresentanti maschere di bit. Gli esempi indicati nelle pagine successive cercheranno di chiarire i vari casi.

 

 

In generale le variabili WinPLUS si dividono in variabili GLOBALI ed in variabili LOCALI.

Le varabili GLOBALI possono essere anche dichiarate ritentive (ovvero mantengono il relativo valore anche a macchina spenta).

 

Variabili GLOBALI: sono variabili che vengono definite tramite l’istruzione VARGLOBAL in un’apposita sezione (VARGLOBAL RETAIN nel caso le si desideri ritentive).

La sezione può essere decentrata in più file e  le variabili sono visibili a tutti i blocchi del programma che includano (istruzione “#IMPORT”) i file dove tali sezioni sono state dichiarate.

Talvolta, per esigenze varie (gestione protocolli, gestione maschere a bit, …), si deve associare a ciascuna variabile GLOBALE una memoria CN che va scelta nel range relativo al blocco in cui viene impostata (vedi tabelle successive).

In passato si era scelta questa tecnica anche per semplificare le operazioni di debug presso il cliente, dato che in questo caso era possibile sfruttare le operazioni di acquisizione valore variabili presenti nell’ambiente OSAI “tradizionale”. La migliorata conoscenza dell’ambiente WinPLUS, con la possibilità di disporre di strumenti di diagnostica migliore hanno alla fine soppiantato questa tecnica, che nelle ultime applicazioni viene utilizzata solo quando necessario.

Si decide di definire tutte le variabili Globali comuni a tutte le applicazioni nel file VarCom.gvl, le variabili generali di macchina nel file VarMac.gvl, le variabili associate a segnali I/O nel file VarInOut.gvl, le variabili associate a messaggi nel file VarMsg,gvl e di definire quelle specifiche ad ogni singolo modulo in appositi file di nome VarModulo.gvl. Per differenziare le une dalle altre in quest’ultimo caso s’inserisce nel nome della variabile il nome del blocco.  In alcuni casi il nome non viene indicato perché facilmente intuibile (ad esempio nel caso di funzioni M/S/T , ecc.).

 

Variabili LOCALI: sono variabili che vengono definite in una specifica sezione all’interno di ciascun BLOCCO di programma così da renderle visibili solo da  questo blocco (variabili LOCALI utilizzate in blocchi diversi con lo stesso nome devono essere considerate variabili diverse a tutti gli effetti).

 

Per differenziarle dalle variabili GLOBALI per le variabili LOCALI si è deciso di anteporre la stringa “LOC_” al tipo di variabile senza indicare il nome del blocco essendo sempre quello in cui vengono definite ed utilizzate.

 

 

Formato Generale:

NOME_VARIABILE           at  INDIRIZZO (opzionale)            : TIPO VARIABILE ;

 

 

TIPO VARIABILE :

 

BOOL             1 bit                range:             0,1 (FALSE,TRUE)

BYTE              8 bit                range:             0…255

WORD           16 bit  (+)       range:             0...65535

INT                  16 bit  (+/-)     range:             -32768…+32767

DWORD        32 bit  (+)       range:             0…4294967295

DINT               32 bit  (+/-)     range:             -2147483648…+2147483647

LREAL           64 bit floating point

STRING         variabili tipo stringa (vedi manuale “WinPLUS Programming Manual”)

TIME               variabili tipo tempo (vedi manuale “WinPLUS Programming Manual”)

 

 

Esempi NOME VARIABILE:                              

 

Nome Variabile:                                        Tipo                                                  Modulo 

INP_OkModuloEmergenza             Segnale ingresso                            VarInOut.gvl

SQ_PortaDxAperta                                     Sensore di posizione                      VarInOut.gvl

YV_SoffiatoreUtensile                                Elettrovalvola                        VarInOut.gvl

MM_ASSI_AsseXInMovimento                 Bit Globale                                        VarAssi.gvl

RI_CAMB_UtensileMandrino                     INT Ritentivo memoria CN VarCamb.gvl

RLRretain_VARI_ContaMinuti                   LREAL ritentiva mem. WinPLUS   VarVari.gvl

MW_ZERO_MskRichiestaZeroAssi         WORD Globale (maschera bit)      VarZero.gvl

SM_CN_ResetProcesso1                         Bit di sistema                                   VarCom.gvl

MSG_CAMBIO_CambioUtInCorso          Messaggio                                       VarMsg.gvl

M21                                                               Bit Funzione M                                 VarFunz.gvl

LOC_MI_Contatore                                     INT Locale                                        Modulo.st

LOC_MLR_ValoreSpeedOverride           LREAL Locale                                 Modulo.st

 

Nelle tabelle riportate nelle pagine seguenti sono indicati tutti i tipi di variabili globali e locali e tutti i simboli da utilizzare per i segnali di I/O.

 

 

INDIRIZZAMENTO SIMBOLICO (opzionale)

 

Come si è detto in precedenza talvolta è preferibile o necessario utilizzare le variabili tradizionali del CN associandovi un nome simbolico.

Una volta stabilito il nome della variabile è necessario definire l’indirizzo di memoria a cui è associata. Di seguito viene indicato il metodo tradizionale tramite puntatore al BYTE specifico dove è allocata  la variabile CN relativa. Nelle ultime release CN, OSAI consente di associare direttamente i simbolici alle variabili CN in chiaro così da agevolare la definizione delle variabili stesse e si consiglia quindi di utilizzare questa tecnica. In seguito ne verranno indicati degli esempi.

 

Indirizzamento tramite puntatore:  %NN.  k*i + offset  (.bit)

 

dove:

NN = sigla abbinata al tipo di memoria WinPLUS

(MX=BOOL,  MB=BYTE, MW=WORD/INT, MD=DWORD/DINT,  ML=LREAL)

I0,  IB0, IW0, ID0                   per gli input  In_m

Q1, QB0, QW1, QD1                      per gli output On_m

MX2, MB2, MW2, MD2, ML2         per S, SW, G, GW e GD

MX4, MB4, MW4, MD4, ML4         per M, MW e MD                 

 

N.B.:  attenzione a non confondere le sigle MD2 ed MD4 associate a variabili doppie word (intere) con le variabili MD (impropriamente chiamate DOUBLE nel PLUS)  che sono variabili floating point:

 

MDW_ASSI_AssiInMovimento_Proc1  AT %MD4.2710    : DWORD ;     (* MW1355-MW1356 *)

2717

2716

2715

2714

2713

2712

2711

2710

MW1358

MW1357

MW1356

MW1355

MDW_….

MDW_ASSI_AssiInMovimento_Proc1

 

MLR_DRIV_AggiustMANACC_Proc1    AT %ML4.24160    : LREAL ;     (*  MD520    *)

24167

24166

24165

24164

24163

24162

24161

24160

MD520 (floating point)

MLR_DRIV_AggiustMANACC_Proc1 (floating point)

 

offset = offset memoria WinPLUS :

per I0 .. ID0                :           0

per Q1 .. QD1           :           0

per MX2 .. ML2         :           0          se S o SW

1000   se G o GW

1512   se GD

 

per MX4 .. ML4         :           0                     se M o MW

20000                        se MD

 

k = indirizzo della variabile CN

i =        2 per   S, SW, G, GW, M o MW

8 per   MD o GD

 

bit = n. del bit da 0 a 15 (solo se la variabile è di tipo BOOL altrimenti si omette)

 

 

 

 

 

 

 

 

 

 


Tabella Indirizzamento simbolici Area CN tramite puntatore

AREA CN

 

Tipo

Range

(k)

 

offset

kmax*I

+offset

i

Definizione WinPLUS  /  Note

 

NOMEVAR at %NN. k*i + offset  (.bit):TIPOVAR ;

Area MW

 

 

0..9999

0

19998

2

 

M1300_5

BOOL

 

 

 

MM_ASSI_…AT  %MX4.2600.4  :BOOL ;

MW1300 byte low

BYTE

 

 

 

MB_ASSI_…AT  %MB4.2600     :BYTE ;

MW1300 byte high

BYTE

 

 

 

MB_ASSI_…AT  %MB4.2601     :BYTE ;

MW1300

WORD

 

 

 

MW_ASSI_…AT  %MW4.2600   :WORD ;

MW1300

INT

 

 

 

MI_ASSI_…  AT  %MW4.2600   :INT ;

MW1301-MW1300

DWORD

 

 

 

MDW_ASSI…AT  %MD4.2600    :DWORD;

MW1301-MW1300

DINT

 

 

 

MDI_ASSI…  AT %MD4.2600     :DINT;

 

 

 

 

 

 

 

Area MD

(floating point)

 

0..2999

20000

43992

8

 

MD400

LREAL

 

 

 

MLR_ASSI_… AT  %ML4.23200  :LREAL ;

 

 

 

 

 

 

 

Area GW

 

 

0..255

1000

1510

2

Memorie ritentive

G10_5

BOOL

 

 

 

RM_ASSI_… AT  %MX2.1020.5  :BOOL ;

GW10 byte low

BYTE

 

 

 

RW_ASSI_… AT  %MB2.1020    :BYTE ;

GW10 byte high

BYTE

 

 

 

RW_ASSI_… AT  %MB2.1021    :BYTE ;

GW10

WORD

 

 

 

RW_ASSI_… AT  %MW2.1020   :WORD ;

GW10

INT

 

 

 

RI_ASSI_…    AT  %MW2.1020   :INT ;

GW11 – GW10

DWORD

 

 

 

RDW_ASSI…AT  %MD4.1020    :DWORD;

GW11 – GW10

DINT

 

 

 

RDI_ASSI…   AT  %MD4.1020    :DINT;

 

 

 

 

 

 

 

Area GD

(floating point)

 

0..63

1512

2016

8

Memorie ritentive

GD15

LREAL

 

 

 

RLR_ASSI_… AT  %ML2.1632  :LREAL ;

 

 

 

 

 

 

 

Area SW

 

 

0..499

0

998

2

 

S31_0

BOOL

 

 

 

SM_CN_…      AT  %MX2.62.0  :BOOL ;

SW31

WORD

 

 

 

SW_CN_…     AT  %MW2.62    :WORD ;

SW31

INT

 

 

 

SI_CN_…        AT  %MW2.62    :INT ;

 

 

 

 

 

 

 

Area A

(stringhe ascii)

 

0..1499

 

0

62958

4

2

Ogni stringa occupa 42 caratteri

 

A0

STRING

 

 

 

ASC_…      AT  %MS5.0  :STRING[40] ;

 

 

 

 

 

 

 


 

Indirizzamento diretto 

Come si è detto in precedenza, nelle ultime release CN, OSAI consente di associare direttamente i simbolici alle variabili CN in chiaro così da agevolare la definizione delle variabili stesse.

 

Esempi :

 

RM_VARI_WarmupInCorso           AT G25_2      : BOOL ;         (* G25_2 @WARMUP_ON *)

RI_VARI_TavolaInLavoro                AT GW26      : INT ;             (* GW26  @WORK_TABLE *)

RLR_VARI_ContaOre                     AT GD6         : LREAL ;       (*  GD6  @TIME_MACH *)

 

MSG_DRIV_AssiInPreallarme                  AT M140_0               : BOOL

INP_FunzioneStallModeAttiva1                 AT M1000_0             : BOOL;

MM_ASSI_OkPrimoCicloWarmStart       AT M1300_0             : BOOL ;

 

Data la semplicità di utilizzo,  per le future applicazioni adottare quindi questa tecnica.

 

 


GLI ARRAY

Un array è un insieme indicizzato di variabili omogenee con nome , tipo e dimensione specificati in fase di definizione. La dimensione è stabilita dai valori di indice minimo e massimo specificati in fase di definizione. L’indice dell’array, che può assumere valori compresi fra il minimo ed il massimo definiti, consente di operare singolarmente su ciascuna delle sue variabili. Il vantaggio di disporre di un array deriva dalla possibilità di utilizzare una variabile per gestire l’indice dell’array così da agevolare la gestione di blocchi di dati anche di grandi dimensioni. In particolare, come le singole variabili globali, anche gli array possono essere associati alle aree di memoria del CN, facilitando così il compito del programmatore quando si debbano gestire blocchi di memorie CN di una certa dimensione. Di seguito sono indicate le regole prestabilite o decise per l’utilizzo dell’array:

 

a)  assegnare sempre 1 all’indice minimo dell’array.

b) l’area di memoria che precede il primo elemento dell’array è riservata dal WinPLUS alla gestione dell’array. Attenzione a tenerne conto in fase di definizione dell’indirizzo iniziale dell’array nel caso venga associato all’area di memoria del CN. In questo caso  l’area di memoria che precederà il primo elemento non dovrà essere assolutamente usata nel PLC.

c) a causa di quanto indicato nel punto b NON è possibile associare un array alle memorie di sistema.

 

L’esempio seguente permette di azzerare tutte le variabili comprese nel range MW3800-MW3819.

 

VAR_GLOBAL

                MI_FUNZ_Array_Funz_M_Proc1  AT %MW4.7598 : ARRAY[1.20] OF INT ;

              (* N.B.:  l’indirizzo 7598 corrisponde alla  MW3799 che non deve quindi essere utilizzata nel PLC *)

END_VAR

 

PROGRAM Funz

VAR

      LOC_MI_Contatore    : INT   ;

END_VAR

 

FOR LOC_MI_Contatore := 1 TO 20 BY 1 DO

                      MI_FUNZ_Array_Funz_M_Proc1[LOC_MI_Contatore] := 0 ;

                END_FOR ;

END_PROGRAM


TABELLA DEI SIMBOLI PER NOMENCLATURA SEGNALI I/O

 

Convenzione adottata per nomenclatura I/O macchina.

 

 SIMBOLO

 

INGRESSI (INPUT)

 

 

Derivato, generico, …

 INP

 

 

Flussostato

  FL

 

 

Interruttore automatico

  QF

Interruttore di protezione motore

  QM

 

 

Resistenza di frenatura

  RR

 

 

Selettore

  SA

Pulsante

  SB

Pulsante/Selettore luminoso

  SH

Sensore di livello

  SL

Sensore di pressione

  SP

Sensore di posizione

  SQ

Sensore di rotazione

  SR

Sensore di temperatura

  ST

 

 

Termostato

 TR

 

 

 

USCITE (OUTPUT)

 

 

Derivata, generica, …

 OUT

 

 

Segnalatore ottico, lampada, …

  HL

 

 

Relè istantaneo

  KA

Contattori di potenza

  KM

 

 

Freno elettromagnetico

  YB

Elettrovalvola

  YV

 

 

 


TABELLA DEI SIMBOLI PER NOMENCLATURA VARIABILI GLOBALI

 

Legenda:       xxxx     Nome del blocco in cui la memoria viene impostata

y          Sigla memoria di sistema (S o M)

 

VARIABILE

RANGE

 SIMBOLO

 

 

 

MEMORIE VOLATILI 1 BIT 

0¸1

MM_xxxx

MEMORIE VOLATILI  8 BIT  BYTE

0¸255

MB_xxxx

MEMORIE VOLATILI 16 BIT WORD (UNSIGNED)

0¸65535

MW_xxxx

MEMORIE VOLATILI 16 BIT INT       (SIGNED)

-32768¸32767

MI_xxxx

MEMORIE VOLATILI 32 BIT DOUBLE WORD (UNS.)

0¸294967295

MDW_xxxx

MEMORIE VOLATILI 32 BIT DOUBLE INT (SIGNED)

-2147483648¸2147483647

MDI_xxxx

MEMORIE VOLATILI 64 BIT LONG REAL

floating point 64bit precis.

MLR_xxxx

MEMORIE VOLATILI TIME

 

MT_xxxxx

 

 

 

MEMORIE RITENTIVE 1 BIT

0¸1

RM_xxxx

MEMORIE RITENTIVE 8 BIT  BYTE

0¸255

RB_xxxx

MEMORIE RITENTIVE 16 BIT WORD (UNSIGNED)

0¸65535

RW_xxxx

MEMORIE RITENTIVE 16 BIT INT      (SIGNED)

-32768¸32767

RI_xxxx

MEMORIE RITENTIVE 32 BIT DOUBLE WORD (UN.)

0¸294967295

RDW_xxxx

MEMORIE RITENTIVE 32 BIT DOUBLE INT (SIGN.)

-2147483648¸2147483647

RDI_xxxx

MEMORIE RITENTIVE 64 BIT LONG REAL

floating point 64bit precis.

RLR_xxxx

 

 

 

MEMORIE VOLATILI 1 BIT CN

0¸1

yM_CN

MEMORIE VOLATILI 8 BIT CN  BYTE

0¸255

yB_CN

MEMORIE VOLATILI 16 BIT CN WORD (UNSIGNED)

0¸65535

yW_CN

MEMORIE VOLATILI 16 BIT CN INT (SIGNED)

-32768¸32767

yI_CN

MEMORIE VOL. 32 BIT CN DOUBLE WORD (UNS.)

0¸294967295

yD_CN

MEMORIE VOL. 32 BIT CN DOUBLE INT (SIGNED)

-2147483648¸2147483647

yDI_CN

MEMORIE VOL. 64 BIT CN LONG REAL

floating point 64bit precis.

yLR_CN

           

 

TABELLA DEI SIMBOLI PER NOMENCLATURA VARIABILI LOCALI (Solo Volatili)

 

VARIABILE

RANGE

 SIMBOLO

 

 

 

MEMORIE  1 BIT 

0¸1

LOC_MM

MEMORIE  8 BIT  BYTE

0¸255

LOC_MB

MEMORIE 16 BIT WORD (UNSIGNED)

0¸65535

LOC_MW

MEMORIE 16 BIT INT       (SIGNED)

-32768¸32767

LOC_MI

MEMORIE  32 BIT DOUBLE WORD (UNS.)

0¸294967295

LOC_MDW

MEMORIE  32 BIT DOUBLE INT (SIGNED)

-2147483648¸2147483647

LOC_MDI

MEMORIE  64 BIT LONG REAL

floating point 64bit precis.

LOC_MLR

MEMORIE  TIME

 

LOC_MT

 

 

 

 


AREA DI MEMORIA OSAI WINPLUS                                 23/08/2011

 

VARIABILI

E

GW

GD

MW

MD

FILE

0-50

0-255

0-63

0-6949

0-1949

FAST

 

0-9

13-14

0-99

0-9

PANPC

 

246

 

200-249

 

USUR

 

247-250

3-5

250-259

580-619

ASSI

 

10-14

15-16

1260-1399

400-409

LUBR

 

20-24

17-18

1400-1499

410-419

BLOC

 

30-39

19-20

1500-1599

420-429

POMP

 

40-49

21-22

1600-1640

1641-1649 keb

430-439

KEB

 

 

 

1650-1699

 

REVO

 

50-59

 

1700-1799

440-449

PROC

 

60-69

25-26

1800-1899

450-459

FORA

 

 

 

1900-1999

460-469

TEST

 

80-89

29-30

2000-2099

470-479

CAMB1

 

90-99

31-32

2100-2199

480-489

CAMB2

 

100-109

33-34

2200-2299

490-499

CAMB3

 

110-119

35-36

2300-2399

500-509

CAMB4

 

120-129

37-38

2400-2479

510-519

DRIV

 

70-79

27-28

2500-2599

520-529

PULS

 

130-139

23-24

2600-2699

530-539

ZERO

 

 

 

2700-2799

540-549

VARI

 

25-29

6 – 12

2800-2899

550-559

OFFSET

 

140-149

 

3760-3798

560-569

FUNZ

 

 

 

3799-3899

570-579

VARIE

 

 

 

 

 

MESSAG.

 

 

 

100-199

 

IN\OUT

 

 

 

1000-1259

 

PROTOC.

 

150-189

200-229

 

 

2480-2499

2900-3759

3900-6499

 

 

IN\OUT

 

 

 

1000-1259

 

MACRO

 

190-199

 

 

 

WINPROD

 

230-239

 

 

 

PLAST

 

240-245

60-63

 

 

PROGRAM

0-50

 

 

 

 

@PLUS

 

15-19

 

 

 

 

 

 

 

 

 

LIBERE

 

 

1-2

260-999

10-399

 

251-255

39-59

6500-6949

620-1949

 

 

 

 

 

 


 

Strutture di programmazione

 

 

FUNZIONI E FUNCTION BLOCK

 

Blocchi di istruzioni ripetitivi nel progetto possono essere strutturati in Funzioni o in FunctionBlock. Preferire l’utilizzo delle Funzioni all’utilizzo dei FunctionBlock perché pur meno performanti consentono una programmazione più  semplice e comunque funzionale.

Per maggiore leggibilità del codice si decide di anteporre F_  al nome della funzione e al tipo di parametro formale della funzione la stringa “FNI_” per i parametri d’ingresso e “FNO_” per i parametri d’uscita.

Esempi: F_EseguoSomma, FNI_MI_Addendo1 , FNI_MI_Addendo2 , FNO_MI_Risultato.

 

Le variabili locali utilizzate all’interno della funzione vanno invece codificate come già previsto per tutte le variabili LOCALI.

 

 

CONTATORI

 

Per la loro realizzazione si preferisce, per maggiore leggibilità del programma, utilizzare delle normali variabili e relativa gestione incrementale/decrementale al posto delle strutture predefinite.

 

 

TEMPORIZZATORI

 

Sono previsti i seguenti tipi di temporizzatori con la relativa simbologia :

 

Diagramma Temporale Timer

 

                    

                    | DLY|           | DLY|  

 

        INP  __|-----------------|_______

 

        OUT ______|----------|_______          Timer TON

 

        OUT __|------------------------|___           Timer TOF

 

        OUT __|------|______________         Timer TP

 

 

Esempio di dichiarazione Istanza  Timer TON

  TimerTon_1(o descrizione): TON;           

 

Esempio di dichiarazione Istanza  Timer TOF

  TimerTof_1(o descrizione): TOF;            

 

Esempio di dichiarazione Istanza  Timer TP

  TimerTp_1(o descrizione): TP;            

 

Esempi di utilizzo:

   TimerTon_Oscillatore    : TON ;

   LOC_MT_Oscillatore      : TIME ;

 

   TimerTon_Oscillatore                                                                 

       ( IN := NOT LOC_MM_AuxOscillatore, PT := KT_30S, 

         Q => LOC_MM_AuxOscillatore, ET => LOC_MT_Oscillatore) ;                    

 

   I Parametri Q e ET sono opzionali :

TimerTon_FrenoTavole    : TON ;

 

            TimerTon_FrenoTavole( IN := INP_ModuloEmergenzaOk, PT := KT_2S);

            YV_DisattFrenoPneumaticoTavolaDx := TimerTon_FrenoTavole.Q ;

 

  Ovviamente in questo caso il Timer è da considerarsi come una variabile LOCALE e

  utilizzabile solo nel modulo in cui è stata definite la relativa instanza.

 

 

PULSE

 

Sono previsti i seguenti tipi di pulse con la relativa simbologia :

 

Pulse Fronte Salita :            PulseUp_1(o descrizione)            :R_TRIG ;

Pulse Fronte Discesa :        PulseDown_1(o descrizione)       :F_TRIG ;

 

 

Esempio di utilizzo:

    PulseUp_PrimoCiclo: R_TRIG;

    PulseUp_PrimoCiclo( CLK:= TRUE, Q=> MM_ASSI_PulsePrimoCiclo) ;

  

   CLK stabilisce il segnale da analizzare.

   MM_ASSI_PulsePrimoCiclo è la pulse disponibile per un ciclo di logica.

 

   Il parametro Q è opzionale:

PulseUp_PrimoCiclo( CLK:= TRUE) ;

            IF( PulseUp_PrimoCiclo.Q) THEN …

 

  Ovviamente questa pulse è da considerarsi come una variabile LOCALE e utilizzabile

  solo nel modulo in cui è stata definite la relativa instanza.

 


TABELLA DEI SIMBOLI PER NOMENCLATURA ULTERIORI STRUTTURE DATI

 

Per le convenzioni adottate per la nomenclatura di Funzioni , Temporizzatori , Pulse , ecc . riferirsi alla seguente tabella:

 

 

STRUTTURA DATI

SIMBOLO

 ESEMPIO

 

 

 

FUNZIONE

F

F_EseguoSomma

BLOCCO FUNZIONE

FB

FB_DatiUt.

Par. d’Ingresso Funzione

FNI_MI

FNI_MI_Addendo1

Par. d’uscita Funzione

FNO_MI

FNO_MI_Risultato

 

 

 

Timer tipo TON

TimerTon

TimerTon_RitardoInitMotori

Timer tipo TOFF

TimerToff

TimerToff_Spegnimento

Timer tipo TP

TimerTp

TimerTp_Soffiatore

 

 

 

Pulse salita

Pulse_Up

PulseUp_PrimoPowerOn

Pulse discesa

Pulse_Down

PulseDownResetCnProc1

 

 

 

Struttura Dati

STR_

STR_MOVCU_ArrayCanPhaseCu

 

 


 

GESTIONE SOFTKEY

 

La gestione delle softkey è affidata al programma Visual Basic “OpPanel” operante sul PC unitamente al sistema WinNBI. Interfacciandosi al CN tramite un server software consente di condividere delle variabili prestabilite (definite nel modulo VarPanPc.gvl) che consentono di determinare quali softkey sono state premute e se tali softkey debbano essere illuminate o meno.

I testi visualizzati associati a ciascuna softkey vanno inseriti nel file di inizializzazione “OpPanel.ini”.

Il programma VB setta il bit relativo alla softkey premuta.  Il PLC acquisisce l’informazione e provvede a resettarlo.  Finché il bit non viene resettato non può essere premuta alcun’altra softkey.

Il programma illumina le softkey che hanno il relativo bit di lampada impostato allo stato logico “1”.

 

 

GESTIONE MESSAGGI

 

Tramite FILE unico WINPLUS.ASC

 

Per la gestione dei messaggi WinPLUS mette a disposizione un file ascii di nome WinPLUS.asc da caricare nel direttorio E:\LOG\WIN del CN che consente di gestire fino a 1500 messaggi di 40 caratteri ciascuno.

Ogni messaggio deve essere preceduto dal numero di riga come si evince dal seguente esempio:   14,LUBRIFICAZIONE ASSI INEFFICIENTE

 

Il file viene organizzato come segue:

 

riga 0 non usata

riga 1       ¸ riga 256            : messaggi ITALIANO

riga 257   ¸ riga 512            : messaggi INGLESE

riga 513   ¸ riga 768            : messaggi FRANCESE

riga 769   ¸ riga 1024          : messaggi SPAGNOLO

riga 1025 ¸ riga 1280         : messaggi TEDESCO

 

riga 1281 ¸ riga 1500         : area ascii libera

 

 

Programmando opportunamente la funzione di sistema MESSROT() è così possibile visualizzare i messaggi attivi , nella lingua del Cliente disponibile nel parametro AMP @LINGUA GW17:

 

@LINGUA     = 1      : ITALIANO

                        = 2      : INGLESE

                        = 3      : FRANCESE

                        = 4      : SPAGNOLO

                        = 5      : TEDESCO

 

Tramite la funzione MESSROT è anche possibile stabilire la corrispondenza fra le 256 righe ascii della lingua del Cliente e un banco di 16 MW i cui bit determinano quali messaggi sono attivi (bit allo stato logico =1). Le MW rimangono le stesse per tutte le lingue. A ciascuna MW viene abbinata anche l’azione corrispondente all’attivazione di un proprio bit:  HOLD , FEEDHOLD , WARNING come di seguito indicato (prendendo come esempio la lingua ITALIANO).

 

 

 

Lingua ITALIANO (riga 1 ¸ riga 256)        Azione associata:

 

riga 1   ¸ riga 16       : MW140                    HOLD

riga 17 ¸ riga 32       : MW141                    HOLD

riga 33 ¸ riga 48       : MW142                    HOLD

riga 49 ¸ riga 64       : MW143                    HOLD

 

riga 65   ¸ riga 80     : MW144                    FEED HOLD

riga 81   ¸ riga 96     : MW145                    FEED HOLD

riga 97   ¸ riga 112  : MW146                    FEED HOLD

riga 113 ¸ riga 128  : MW147                    FEED HOLD

 

riga 129 ¸ riga 144  : MW148                    WARNING

riga 145 ¸ riga 160  : MW149                    WARNING

riga 161 ¸ riga 176  : MW150                    WARNING

riga 177 ¸ riga 192  : MW151                    WARNING

 

riga 193 ¸ riga 208  : MW152                    WARNING

riga 209 ¸ riga 224  : MW153                    WARNING

riga 225 ¸ riga 240  : MW154                    WARNING

riga 241 ¸ riga 256  : MW155                    WARNING

 

 

 


Tabella Messaggi WinPLUS.ASC

 

ITA  ING   FRA   SPA   TED    MEMO        ITA  ING   FRA   SPA   TED     MEMO

 

1    257   513   769   1025   M140,0      49   305   561   817   1073    M143,0

2    258   514   770   1026   M140,1      50   306   562   818   1074    M143,1

3    259   515   771   1027   M140,2      51   307   563   819   1075    M143,2

4    260   516   772   1028   M140,3      52   308   564   820   1076    M143,3

5    261   517   773   1029   M140,4      53   309   565   821   1077    M143,4

6    262   518   774   1030   M140,5      54   310   566   822   1078    M143,5

7    263   519   775   1031   M140,6      55   311   567   823   1079    M143,6

8    264   520   776   1032   M140,7      56   312   568   824   1080    M143,7

9    265   521   777   1033   M140,8      57   313   569   825   1081    M143,8

10   266   522   778   1034   M140,9      58   314   570   826   1082    M143,9

11   267   523   779   1035   M140,10     59   315   571   827   1083    M143,10

12   268   524   780   1036   M140,11     60   316   572   828   1084    M143,11

13   269   525   781   1037   M140,12     61   317   573   829   1085    M143,12

14   270   526   782   1038   M140,13     62   318   574   830   1086    M143,13

15   271   527   783   1039   M140,14     63   319   575   831   1087    M143,14

16   272   528   784   1040   M140,15     64   320   576   832   1088    M143,15

17   273   529   785   1041   M141,0      65   321   577   833   1089    M144,0

18   274   530   786   1042   M141,1      66   322   578   834   1090    M144,1

19   275   531   787   1043   M141,2      67   323   579   835   1091    M144,2

20   276   532   788   1044   M141,3      68   324   580   836   1092    M144,3

21   277   533   789   1045   M141,4      69   325   581   837   1093    M144,4

22   278   534   790   1046   M141,5      70   326   582   838   1094    M144,5

23   279   535   791   1047   M141,6      71   327   583   839   1095    M144,6

24   280   536   792   1048   M141,7      72   328   584   840   1096    M144,7

25   281   537   793   1049   M141,8      73   329   585   841   1097    M144,8

26   282   538   794   1050   M141,9      74   330   586   842   1098    M144,9

27   283   539   795   1051   M141,10     75   331   587   843   1099    M144,10

28   284   540   796   1052   M141,11     76   332   588   844   1100    M144,11

29   285   541   797   1053   M141,12     77   333   589   845   1101    M144,12

30   286   542   798   1054   M141,13     78   334   590   846   1102    M144,13

31   287   543   799   1055   M141,14     79   335   591   847   1103    M144,14

32   288   544   800   1056   M141,15     80   336   592   848   1104    M144,15

33   289   545   801   1057   M142,0      81   337   593   849   1105    M145,0

34   290   546   802   1058   M142,1      82   338   594   850   1106    M145,1

35   291   547   803   1059   M142,2      83   339   595   851   1107    M145,2

36   292   548   804   1060   M142,3      84   340   596   852   1108    M145,3

37   293   549   805   1061   M142,4      85   341   597   853   1109    M145,4

38   294   550   806   1062   M142,5      86   342   598   854   1110    M145,5

39   295   551   807   1063   M142,6      87   343   599   855   1111    M145,6

40   296   552   808   1064   M142,7      88   344   600   856   1112    M145,7

41   297   553   809   1065   M142,8      89   345   601   857   1113    M145,8

42   298   554   810   1066   M142,9      90   346   602   858   1114    M145,9

43   299   555   811   1067   M142,10     91   347   603   859   1115    M145,10

44   300   556   812   1068   M142,11     92   348   604   860   1116    M145,11

45   301   557   813   1069   M142,12     93   349   605   861   1117    M145,12

46   302   558   814   1070   M142,13     94   350   606   862   1118    M145,13

47   303   559   815   1071   M142,14     95   351   607   863   1119    M145,14

48   304   560   816   1072   M142,15     96   352   608   864   1120    M145,15

 


ITA  ING   FRA   SPA   TED    MEMO        ITA  ING   FRA   SPA   TED     MEMO

 

97   353   609   865   1121   M146,0      145  401   657   913   1169    M149,0

98   354   610   866   1122   M146,1      146  402   658   914   1170    M149,1

99   355   611   867   1123   M146,2      147  403   659   915   1171    M149,2

100  356   612   868   1124   M146,3      148  404   660   916   1172    M149,3

101  357   613   869   1125   M146,4      149  405   661   917   1173    M149,4

102  358   614   870   1126   M146,5      150  406   662   918   1174    M149,5

103  359   615   871   1127   M146,6      151  407   663   919   1175    M149,6

104  360   616   872   1128   M146,7      152  408   664   920   1176    M149,7

105  361   617   873   1129   M146,8      153  409   665   921   1177    M149,8

106  362   618   874   1130   M146,9      154  410   666   922   1178    M149,9

107  363   619   875   1131   M146,10     155  411   667   923   1179    M149,10

108  364   620   876   1132   M146,11     156  412   668   924   1180    M149,11

109  365   621   877   1133   M146,12     157  413   669   925   1181    M149,12

110  366   622   878   1134   M146,13     158  414   670   926   1182    M149,13

111  367   623   879   1135   M146,14     159  415   671   927   1183    M149,14

112  368   624   880   1136   M146,15     160  416   672   928   1184    M149,15

113  369   625   881   1137   M147,0      161  417   673   929   1185    M150,0

114  370   626   882   1138   M147,1      162  418   674   930   1186    M150,1

115  371   627   883   1139   M147,2      163  419   675   931   1187    M150,2

116  372   628   884   1140   M147,3      164  420   676   932   1188    M150,3

117  373   629   885   1141   M147,4      165  421   677   933   1189    M150,4

118  374   630   886   1142   M147,5      166  422   678   934   1190    M150,5

119  375   631   887   1143   M147,6      167  423   679   935   1191    M150,6

120  376   632   888   1144   M147,7      168  424   680   936   1192    M150,7

121  377   633   889   1145   M147,8      169  425   681   937   1193    M150,8

122  378   634   890   1146   M147,9      170  426   682   938   1194    M150,9

123  379   635   891   1147   M147,10     171  427   683   939   1195    M150,10

124  380   636   892   1148   M147,11     172  428   684   940   1196    M150,11

125  381   637   893   1149   M147,12     173  429   685   941   1197    M150,12

126  382   638   894   1150   M147,13     174  430   686   942   1198    M150,13

127  383   639   895   1151   M147,14     175  431   687   943   1199    M150,14

128  384   640   896   1152   M147,15     176  432   688   944   1200    M150,15

129  385   641   897   1153   M148,0      177  433   689   945   1201    M151,0

130  386   642   898   1154   M148,1      178  434   690   946   1202    M151,1

131  387   643   899   1155   M148,2      179  435   691   947   1203    M151,2

132  388   644   900   1156   M148,3      180  436   692   948   1204    M151,3

133  389   645   901   1157   M148,4      181  437   693   949   1205    M151,4

134  390   646   902   1158   M148,5      182  438   694   950   1206    M151,5

135  391   647   903   1159   M148,6      183  439   695   951   1207    M151,6

136  392   648   904   1160   M148,7      184  440   696   952   1208    M151,7

137  393   649   905   1161   M148,8      185  441   697   953   1209    M151,8

138  394   650   906   1162   M148,9      186  442   698   954   1210    M151,9

139  395   651   907   1163   M148,10     187  443   699   955   1211    M151,10

140  396   652   908   1164   M148,11     188  444   700   956   1212    M151,11

141  397   653   909   1165   M148,12     189  445   701   957   1213    M151,12

142  398   654   910   1166   M148,13     190  446   702   958   1214    M151,13

143  399   655   911   1167   M148,14     191  447   703   959   1215    M151,14

144  400   656   912   1168   M148,15     192  448   704   960   1216    M151,15

 


ITA  ING   FRA   SPA   TED    MEMO        ITA  ING   FRA   SPA   TED     MEMO

 

193  449   705   961   1217   M152,0      241  497   753   1009   1265   M155,0

194  450   706   962   1218   M152,1      242  498   754   1010   1266   M155,1

195  451   707   963   1219   M152,2      243  499   755   1011   1267   M155,2

196  452   708   964   1220   M152,3      244  500   756   1012   1268   M155,3

197  453   709   965   1221   M152,4      245  501   757   1013   1269   M155,4

198  454   710   966   1222   M152,5      246  502   758   1014   1270   M155,5

199  455   711   967   1223   M152,6      247  503   759   1015   1271   M155,6

200  456   712   968   1224   M152,7      248  504   760   1016   1272   M155,7

201  457   713   969   1225   M152,8      249  505   761   1017   1273   M155,8

202  458   714   970   1226   M152,9      250  506   762   1018   1274   M155,9

203  459   715   971   1227   M152,10     251  507   763   1019   1275   M155,10

204  460   716   972   1228   M152,11     252  508   764   1020   1276   M155,11

205  461   717   973   1229   M152,12     253  509   765   1021   1277   M155,12

206  462   718   974   1230   M152,13     254  510   766   1022   1278   M155,13

207  463   719   975   1231   M152,14     255  511   767   1023   1279   M155,14

208  464   720   976   1232   M152,15     256  512   768   1024   1280   M155,15

209  465   721   977   1233   M153,0                       

210  466   722   978   1234   M153,1                       

211  467   723   979   1235   M153,2                       

212  468   724   980   1236   M153,3                       

213  469   725   981   1237   M153,4                       

214  470   726   982   1238   M153,5                       

215  471   727   983   1239   M153,6                       

216  472   728   984   1240   M153,7                        

217  473   729   985   1241   M153,8                       

218  474   730   986   1242   M153,9                       

219  475   731   987   1243   M153,10                       

220  476   732   988   1244   M153,11                        

221  477   733   989   1245   M153,12                       

222  478   734   990   1246   M153,13                       

223  479   735   991   1247   M153,14                       

224  480   736   992   1248   M153,15                       

225  481   737   993   1249   M154,0                       

226  482   738   994   1250   M154,1                       

227  483   739   995   1251   M154,2                       

228  484   740   996   1252   M154,3                       

229  485   741   997   1253   M154,4                       

230  486   742   998   1254   M154,5                       

231  487   743   999   1255   M154,6                       

232  488   744   1000  1256   M154,7                       

233  489   745   1001  1257   M154,8                       

234  490   746   1002  1258   M154,9                       

235  491   747   1003  1259   M154,10                       

236  492   748   1004  1260   M154,11                       

237  493   749   1005  1261   M154,12                       

238  494   750   1006  1262   M154,13                       

239  495   751   1007  1263   M154,14                       

240  496   752   1008  1264   M154,15                       


Tramite FILE specifici per ciascuna lingua (ITA.ASC, ING.ASC, FRA.ASC, …)

 

Nelle ultime applicazioni PLC si è preferito differenziare i file messaggi nelle varie lingue.

Questa tecnica consente di disporre di un numero maggiore di allarmi per ciascuna lingua  tradizionale, di agevolare le operazioni per l’aggiunta di messaggi in nuove lingue e facilita in generale le operazioni di confronto.

I file vanno inseriti nel direttorio E:\LOG\WIN del CN.

 

Programmando opportunamente la funzione di sistema MESSROT() è così possibile visualizzare i messaggi attivi , nella lingua del Cliente disponibile nel parametro AMP @LINGUA GW17:

 

@LINGUA     = 1      : ITALIANO                File ITA.ASC

                        = 2      : INGLESE                File ING.ASC

                        = 3      : FRANCESE           File FRA.ASC

                        = 4      : SPAGNOLO           File SPA.ASC

                        = 5      : TEDESCO              File TED.ASC

                        =…      : …                             File … .ASC

 

Tramite la funzione MESSROT è anche possibile stabilire la corrispondenza fra le righe ascii della lingua del Cliente e un banco di n. MW i cui bit determinano quali messaggi sono attivi (bit allo stato logico =1). Le MW rimangono le stesse per tutte le lingue.

 

La tecnica di associare alla posizione del messaggio il tipo di azione che il messaggio comporterà (HOLD, FEEDHOLD, WARNING, …), pur essendo utilizzata anche con i file multipli è comunque in via di sostituzione con la tecnica che prevede di gestire i messaggi  in posizione libera e di raggrupparli successivamente (condizionandoli eventualmente al verificarsi di determinate condizioni) in gruppi associati a variabili che stabiliscono l’azione da realizzare al verificarsi di un messaggio che compone quel gruppo. Ciò consente di visualizzare il messaggio in ogni caso e di ripartire i messaggi come si desideri.

 

Si consiglia inoltre di riportare nel file VarMsg.gvl la descrizione presente nel file ITA.ASC (sempre presente) così da agevolare le operazioni di diagnostica data la possibilità di trovare facilmente (operazione CTRL+I) il punto in cui il messaggio è gestito (eventualmente forzando provvisoriamente @LINGUA=1) :

 

MSG_DRIV_AssiInPreallarme                AT M140_0 : BOOL ;     (* 148 ASSI IN PREALLARME                    *)

MSG_DRIV_AssiInAllarme                    AT M140_1 : BOOL ;    (* 147 ASSI IN ALLARME                                       *)

MSG_DRIV_AzionamentiNonAliment      AT M140_2 : BOOL ;     (* 151 AZIONAMENTI NON ALIMENTATI  *)

 

 

 

 

 

 

 


Debugging del progetto WinPLUS

 

Questa attività permette di verificare che il progetto realizzi le specifiche iniziali ed di apportarvi le migliorie che si rivelassero necessarie. L’utilizzo esclusivo di variabili globali associate a variabili CN consente di ottenere un buon numero di informazioni già dall’interrogazione delle variabili tramite la procedura classica consentita all’interno del  vecchio ambiente CN a cui si accede da WinNBI tramite l’icona “XY”.

Per una diagnostica esaustiva è invece necessario operare in modalità OnLine nell’ambiente WinPLUS installato sul PC della macchina.  Per collegarsi OnLine scopo debugging è necessario eseguire l’operazione di “Connect” e successivamente “Enable Debug”.

 

Breakpoint

L’uso dei breakpoint  consente di arrestare l’esecuzione del PLC in punti prestabiliti dell’applicazione (breakpoint) così da potere eseguire diagnostiche accurate. Dato che il PLC in corrispondenza dei breakpoint viene arrestato, potrebbero insorgere eventi incontrollati nonché pericolosi. Si raccomanda quindi la massima attenzione quando li si utilizzi.

 

Abilitando in OSAI TARGHET  “NONE”  significa che l’eseguibile che verrà inviato sarà quello definitivo e quindi senza alcun breakpoint.

 

 

Abilitando in OSAI TARGHET  “SIMPLE”  significa che i breakpoint sono validi solo in testa ed alla fine dei programmi.

E’ possibile in questo caso abilitare i breakpoint in un solo file di logica inserendo in testa al file:                       (*[[

     bpopt=”2”

]]*)

ricompilando e scaricando il nuovo applicativo.

 

 

Abilitando in OSAI TARGHET  “ADVANCED”  significa che si possono usare i breakpoint anche all’interno dei programmi.

 

 

Metodologia di identificazione errore da interprete WinPlus

 

N:B.: La rilevazione del codice Pos e valida solo dalla Release cn 7.3 con Fixup 5 in poi.

N.B.: Per vedere il codice in Winplus, deve essere attivo il Debug durante l’avvenuta dell’errore

 

Nel momento in cui l’interprete WinPlus genera un errore, nella finestra di Debug del WinPlus Engineering viene visualizzato un opportuno messaggio. All’interno del messaggio, oltre alla descrizione dell’errore, viene segnalato il task che lo genera (nome) ed altri tre parametri che permettono di identificare la linea di sorgente a cui si è verificato l’errore.

 

{ Code: XX Pos: YY Inst: ZZ }

 

Per determinare la linea in cui compare l’errore occorre generare il file di mappa del progetto (file osai.map che si trova nella directory gen\osai\ ). Per ottenere tale file occorre aggiungere l’opzione opt=map:2 all’interno del file <nomeprogetto>.4cp, sezione compiler e ricompilare il progetto

 

[Compiler.4COsai]

….

….

opt=map:2

 

 

 

Il primo numero (Code) rappresenta il numero della POU (programma, function, function block,….) in cui è presente l’errore. All’interno della mappa occorre trovare una linea del tipo

 

.code ….. (classid=XX)

 

dove XX è l’ID dell’oggetto che ha generato l’errore.

 

Il secondo numero (Pos) rappresenta la posizione dell’errore all’interno dell’oggetto che lo ha generato. Tale valore deve essere ricercato nella prima colonna nella sezione .code, in tal modo si determina la linea che genera l’errore.

 

Il terzo numero (Inst) identifica l’istanza dell’oggetto che ha generato l’errore (un programma od un FB può essere utilizzato più volte in un progetto). Ricercando nella zona

 

.begin instance objects

 

il numero ZZ si riesca a determinare l’istanza che ha generato l’errore.

 

 


Backup e restore del PLC mediante PM Tool

 

Il backup del PLC tramite PM Tool è utile per eseguire il download di un PLC con la versione 2.15 di Winplus, ma compilato con la versione di 2.15.2 e viceversa.

 

Per eseguire il backup lanciare il PM Tool da winplus selezionando Tool -> Pm Tool. Apparirà la seguente finestra:

 

 

Selezionare Backup ed inserire il percorso della cartella contenete il PLC nel campo 4CONTROL Project.

 

Spuntare File System ed inserire il percorso di destinazione del file che verrà creato nel campo Backup File.

 

Selezionare Setting ed impostare i campi della nuova finestra apparsa, con gli stessi valori della figura sottostante.

 

 

Selezionare Ok e quindi Backup.

 

Per eseguire il Restore del PLC selezionare ancora il PM Tool, quindi Restore. Impostare i campi Backup File con il percorso del backup e 4CONTROL Project con la cartella in cui verrà ripristinato il PLC. Impostare il resto dei settaggi come per la procedura di Backup